package com.zhuiYun.project.api.appletshoppingcart.model;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import lombok.Data;

import javax.persistence.Transient;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author lyp
 * @className AppletShoppingCartModel
 * @description TODO
 * @date 2023/4/5 9:39
 */
@ApiOperation("购物车模型类")
@Data
public class AppletShoppingCartModel implements Serializable {

    @ApiModelProperty("主键id新增时无需填写")
    private Integer id;

    /**
     * 加入购物车时间
     */
    @NotBlank(message = "加入购物车时间不能为空")
    @ApiModelProperty("加入购物车时间")
    private Date addToCartDate;

    /**
     * 购买人id
     */
    @NotBlank(message = "购买人id不能为空")
    @ApiModelProperty("购买人id")
    private Integer userId;

    /**
     * 商品id
     */
    @NotBlank(message = "商品id不能为空")
    @ApiModelProperty("商品id")
    private Integer commodityId;

    /**
     * 商家名称
     */
    @NotBlank(message = "商家名称不能为空")
    @ApiModelProperty("商家名称")
    private String businessName;


    /**
     * 商品总价
     */
    @NotBlank(message = "商品单价不能为空")
    @ApiModelProperty("商品单价")
    private BigDecimal totalPrices;

    /**
     * 退换货政策
     */
    @ApiModelProperty("退换货政策")
    private String returnAndExchangePolicy;

    /**
     * 商品数量
     */
    @NotBlank(message = "商品数量不能为空")
    @ApiModelProperty("商品数量")
    private Integer number;

    /**
     * 商品是否被选中标志 true为选中 false为未选中
     */
    @ApiModelProperty("标志")
    private String flag;

    /**
     * 是否是diy 0是商品 1为diy
     */
    @ApiModelProperty("是否是diy")
    @NotBlank(message = "是否是diy属性不能为空")
    private Integer isNoDiy;

    /**
     * diyId
     */
    @ApiModelProperty("diyId")
    @NotBlank(message = "diyId")
    private Integer diyId;

    /**
     * 商品属性
     */
    @ApiModelProperty("商品属性")
    private String  commoditySpec;

    /**
     * 删除标志
     */
    @ApiModelProperty("删除标志")
    private Integer delFlag;

    /**
     * 物品是否选中类型id
     */
    @Transient
    @ApiModelProperty("物品手否选中类型id")
    @NotBlank(message = "物品是否选中类型id不能为空")
    private Integer typeId;

    /**
     * 两表联查物品名称
     */
    @Transient
    @ApiModelProperty("两表联查物品名称")
    @NotBlank(message = "两表联查物品名称不能为空")
    private String commName;

    /**
     * 两表联查图片id
     */
    @Transient
    @ApiModelProperty("两表联查图片id")
    private String imgId;

    /**
     * 两表联查指定价格
     */
    @Transient
    @ApiModelProperty("两表联查指定价格")
    private BigDecimal price;

    /**
     * 两表联查最终价格
     */
    @Transient
    @ApiModelProperty("两表联查最终价格")
    private BigDecimal favPrice;

    /**
     * 两表联查商品备注
     */
    @Transient
    private String back;

    /**
     * 用户结算时diy总钱数
     */
    @Transient
    @ApiModelProperty("用户结算时diy总钱数")
    private BigDecimal shoppingDiyPriceSum;

    /**
     * 创建时间
     */
    @ApiModelProperty("创建时间")
    private Date createTime;

    /**
     * 修改时间
     */
    @ApiModelProperty("修改时间")
    private Date updateTime;


}
